#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
スピンコントロール設置パッケージ
"""
import context
import wx
import util
import event

"""
スピンコントロールビルダー
"""
class Builder:
    
    """
    イニシャライズ
    """
    def __init__(self):
        self.ctrl = {}
        self.count = event.Count()
        
    """
    ボタン構築
    """
    def build(self):
        config = context.Config
        panel = context.UI.buttons_panel
        #ボタン構築
        self.setParts()
        
        #サイザーにセット
        #sizer = wx.GridSizer(1, len(config["target"])*2, 0, 0)
        #for i,v in enumerate(self.button):
        #    sizer.Add(v, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL)
            
        #panel.SetSizer(sizer)
        self.count.initResult()
    
    def setParts(self):
        config = context.Config
        panel = context.UI.buttons_panel
        sizer = wx.GridSizer(1, len(config["target"])*2, 0, 0)
        
        for v in config["target"]:
            text = wx.StaticText(panel, -1, util.encode(v["name"]))
            sizer.Add(text, 0, wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
            if(v["type"]=="int"):            
                try:
                    max = v["max"]
                except Exception:
                    max = 50
                    
                s = wx.SpinCtrl(panel, -1, "0",wx.DefaultPosition, (50, 30) ,wx.SP_ARROW_KEYS, 0, max)
                s.Bind(wx.EVT_SPIN, ev.calcSpin)
  
            else:
                s = wx.CheckBox(panel, -1, "")
                s.Bind(wx.EVT_CHECKBOX, ev.calcSpin)
            
            ev = event.Counter(self.count,str,v)
            self.ctrl[v["str"]] = s
            
            
            sizer.Add(s, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL)
            
        panel.SetSizer(sizer)

        
    
            
        
    
        
